﻿/*****************************************************
**Copyright(C), 2021-2022, Ciqtek Technology.
**Version:     1.0
**Author:      MiPeng
**Date:        2023/02/23
**Description: 截屏
*****************************************************/

#ifndef SCREENCAPTURE_H
#define SCREENCAPTURE_H

#include "common_global.h"

#include <QImage>

namespace Common {

	class COMMONSHARED_EXPORT ScreenCapture
	{
	public:
		/**  截屏类型
		 */
		enum ScreenType
		{
			CURRENT_SCREEN = 0,        ///< 当前屏幕
			CURRENT_WINDOW             ///< 当前窗口
		};

	public:
		/**
		 * @brief  getFullScreenImage  截取指定窗口屏幕
		 * @param  type  类型
		 * @param  widget  窗口对象
		 * @return QImage
		 */
		static QImage getFullScreenImage(ScreenType type, QWidget *widget);

		/**
		 * @brief  getScreenImage  截取截取指定窗口屏幕屏幕
		 * @param  type  截屏类型
		 * @param  widget  窗口对象
		 * @param  startX  起点X坐标
		 * @param  startY  起点Y坐标
		 * @param  width  宽度
		 * @param  height  高度
		 * @return QImage
		 * @note  宽高不会大于指定窗口大小
		 */
		static QImage getScreenImage(ScreenType type, QWidget *widget, int startX, int startY, int width, int height);
	};

}

#endif // SCREENCAPTURE_H
